Flash Socket Policy Changes

Mr. Muskrat on 2008-04-17T23:41:31

At work we have this web based app that uses Flash to open a socket and pass along any data it receives to the JavaScript. Everything was working well until Flash rolled out 9,0,124,0. Now our app cannot make the socket connection (to the same domain that hosts the SWF) because we don't have a policy file. So I read all the articles they provided and followed their directions to get one set up (with a process set up on port 843 to hand out the policy file).

So I try out our web based app only to see this show up:

Web Based App::securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Security sandbox violation: http://someserver/flash.swf cannot load data from someserver:12345."]

So I installed the debug version of Flash Player and configured my mm.cfg with 'PolicyFileLog=1' so that Flash will create a log with the profile information in it (profilelog.txt ). What do I see in profilelog.txt?

OK: Root-level SWF loaded: http://someserver/flash.swf
OK: Searching for  in policy files to authorize data loading from resource at xmlsocket://someserver:12345 by requestor from http://someserver/flash.swf
Warning: [strict] Ignoring policy file at xmlsocket://someserver:843 due to incorrect syntax.  See http://www.adobe.com/go/strict_policy_files to fix this problem.

I reread all of the articles and go through the steps of creating the policy file only this time I use their example file:





 

   
   
   

   
   
   




I hit the web app again. I was expecting it to be accepted but still throw the securityErrorHandler. Instead I received the same exact error! Their example policy file is invalid! I then tried to remove the comments and blank lines but that was still invalid.

Next I tried using one that I found on the net:



        
        

Of course it too was invalid.

I tried every possible combination that I can think of and nothing worked. So I made a call to Adobe tech support. Once I had the guy understanding what was happening he had me pull up the app and look at the profilelog.txt. The only thing is that it worked this time. Yeah, that's right folks, apparently calling tech support will fix it automatically. (Even if that were true, it would be totally impractical.)

After I hung up, I SCPed the file to another server and tried to get it working there. No luck. I received the invalid syntax error every time in profilelog.txt. I've tried everything but simply couldn't get it working on the second server.

So my boss tells me that we'll just make sure that we ship a version of the Flash Player that does work. Great! I'll just back out all of my changes, uninstall Flash 9,0,124,0 and install the old Flash Player. Except that I can't get any old version of the Flash Player to install in IE. It'll only install 9,0,124,0!

Finally I decided that I had better reinstate the files to the development server since it looks like we do have to get this thing working. Guess what? I can't get it to work on the original server again.

*sigh*


Solution found

Mr. Muskrat on 2008-05-16T14:01:42

For those of you finding this via Google (or another search engine), a solution to my problem was found. You can read about it here: http://use.perl.org/user/Mr.+Muskrat/journal/36193